package done.easy_901_1000;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

import java.util.*;

/**
 * 970. Powerful Integers
 * <p>
 * 给定两个正整数 x 和 y，如果某一整数等于 x^i + y^j，其中整数 i >= 0 且 j >= 0，
 * 那么我们认为该整数是一个强整数。返回值小于或等于 bound 的所有强整数组成的列表。
 * 你可以按任何顺序返回答案。在你的回答中，每个值最多出现一次。
 * <p>
 * 示例 1：
 * 输入：x = 2, y = 3, bound = 10
 * 输出：[2,3,4,5,7,9,10]
 * 解释：
 * 2 = 2^0 + 3^0
 * 3 = 2^1 + 3^0
 * 4 = 2^0 + 3^1
 * 5 = 2^1 + 3^1
 * 7 = 2^2 + 3^1
 * 9 = 2^3 + 3^0
 * 10 = 2^0 + 3^2
 *
 * @author wangxiaozhe
 */
@Slf4j
public class PowerfulIntegers {

    @SuppressWarnings("all")
    public List<Integer> powerfulIntegers(int x, int y, int bound) {
        // 190327 first
        return null;
    }

    @Test
    public void test() {
        int x = 2;
        int y = 3;
        int bound = 10;
        log.info("result:{}", powerfulIntegers(x, y, bound));
    }
}









































/*
public List<Integer> powerfulIntegers(int x, int y, int bound) {
    // set的特点是无序、不重复
    Set<Integer> set = new HashSet<>();

    // 其实 a*=x 就是x的1、2、3、4、5... 次方
    // a==1 就代表x的零次方
    for (int a = 1; a < bound; a *= x) {

        // b*=y 就是y的1、2、3、4、5... 次方
        // b==1 就代表y的零次方
        for (int b = 1; a + b <= bound; b *= y) {
            set.add(a + b);
            if (y == 1) break;
        }
        if (x == 1) break;
    }
    return new ArrayList<>(set);
}
*/
